package cn.com.dcsgo.service;

import cn.com.dcsgo.model.acl.Permission;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * PermissionService
 *
 * @author Dcsgo
 * @since 2025/3/24 21:10
 */

public interface PermissionService extends IService<Permission> {
    /**
     * 获取权限列表-层级结构
     *
     * @return List->Permission
     */
    List<Permission> allPermissionOfHierarchicalStruct();

    /**
     * 删除权限，包含其子权限
     *
     * @param id id
     */
    void removeContainChild(Long id);

    /**
     * 根据角色id获取权限列表
     *
     * @param roleId roleId
     * @return 树状权限列表和以分配的权限
     */
    List<Permission> getPermissionListByRoleId(Long roleId);

    /**
     * 给角色分配权限
     * @param roleId roleId
     * @param permissionIds permissionIds
     */
    void assignPermission(Long roleId, Long[] permissionIds);
}
